#ifndef STRINGSTATUS_H_
#define STRINGSTATUS_H_

#include "StatusElement.h"

/**
 * \class StringStatus
 * \brief a StatusElement-derived class which holds a string
 */
class StringStatus: public StatusElement {
public:
	/**
	 * \brief StringStatus must be constructed with the description
	 */
	StringStatus(std::string statusDescription);
	virtual ~StringStatus();

	/**
	 * \brief redefinition of \a Element::getType() to return correct value
	 * \return STRINGSTATUS
	 */
	int getType();
	/**
	 * \brief set the string to be stored
	 * \param newStringValue the new string to store
	 */
	void setValueString(std::string newStringValue);
	/**
	 * \brief get the stored string
	 * \return the stored string
	 */
	std::string getValueString();

	void setValue(void* newValue);

private:
	/**
	 * \brief the storage member of the string
	 */
	std::string valueString;
};

#endif /* STRINGSTATUS_H_ */
